home *** CD-ROM | disk | FTP | other *** search
/ The 640 MEG Shareware Studio 2 / The 640 Meg Shareware Studio CD-ROM Volume II (Data Express)(1993).ISO / basic / qbfaqr01.zip / ENCRYPT.BAS < prev    next >
BASIC Source File  |  1992-08-10  |  1KB  |  47 lines

  1. 'Here's a piece of code that someone translated from C into QuickBAsic
  2. 'from Dr. Dobb's Journal. I apologize for not crediting who did this fine
  3. 'work, but I do not recall who posted it. I found it useful and am
  4. 'willing to replicate the code. It goes like this :
  5.  
  6.   DECLARE SUB Crypt (Buffer$, Key$, Start%)
  7.   DEFINT A-Z
  8.  
  9.   CStr$ = "This is the string I want to encrypt."
  10.   Key1$ = "This is my key."
  11.   Key$ = Key1$
  12.  
  13.   PRINT "{"; CStr$; "}"
  14.   PRINT "{"; Key$; "}"
  15.   CALL Crypt(CStr$, Key$, 10)
  16.   PRINT "{"; CStr$; "}"
  17.   PRINT "{"; Key$; "}"
  18.   Key$ = Key1$
  19.   CALL Crypt(CStr$, Key$, 10)
  20.   PRINT "{"; CStr$; "}"
  21.   PRINT "{"; Key$; "}"
  22.  
  23.   SUB Crypt (Buffer$, Key$, Start)
  24.  
  25.   BufLen = LEN(Buffer$)
  26.   KeyLen = LEN(Key$)
  27.     IF Start = 0 OR Start > KeyLen THEN
  28.        Start = 1
  29.     END IF
  30.  
  31.     FOR I = 1 TO BufLen
  32.         MID$(Buffer$, I, 1) = CHR$(ASC(MID$(Buffer$, I, 1)) XOR
  33.      (ASC(MID$(Key$, Start, 1)) XOR (ASC(MID$(Key$, 1, 1)) * Start)) AND
  34.         &HFF)
  35.     IF Start < KeyLen THEN
  36.        MID$(Key$, Start, 1) = CHR$((ASC(MID$(Key$, Start, 1)) +
  37.        ASC(MID$(Key$, Start + 1, 1))) AND &HFF)
  38.        Start = Start + 1
  39.        ELSE
  40.        MID$(Key$, Start, 1) = CHR$((ASC(MID$(Key$, Start, 1)) +
  41.        ASC(MID$(Key$, 1, 1))) AND &HFF)
  42.        Start = 1
  43.     END IF
  44.     NEXT
  45.  
  46.    END SUB
  47.